This invention relates generally to optical code reading devices. It is directed to a circuit that enables a signal to be reconstructed from sparsely sampled analog data, and more specifically to a circuit employed in conjunction with a bar code scanner that allows the transition points between bars and spaces to be identified.
In bar code reading equipment it is essential to accurately identify those areas that are presented as optical elements (bars and spaces) as the bar code symbol is scanned or read. This is particularly true in the case of commonly used codes, both linear and stacked linear, where information is not only found in the presence of bars and spaces, but also in their relative width dimensions. Bar code recognition circuitry conventionally converts an analog signal that is generated by a photodetector to a bit serial binary representation of the bar-space pattern. Conventionally the process of determining the transition points is performed by the digitizer.
In practice, detecting the location of a transition point is often complicated by noise. Such noise can arise from diverse sources such as varying ambient light, physical impediments to the path of light to and from the bar code symbol such as dirt, defocusing, fading or irregularities in the print, microphonics within the scanner, and optical degradation caused by the well known diffusion and laminate effects. Other sources of noise and error are known in the bar code reading art.
Conventionally a time sampled scanning bar code scanner (reader) performs a relatively sparse temporal sampling of a bar code symbol being scanned, while a CCD bar code scanner performs, analogously, a relatively sparse spatial sampling of a bar code symbol being scanned. The information density realized by a scan is a function of the modulation transfer function of the optical system, the physical size of the symbol and, depending upon the type of device, the scanning rate or the granularity of the photodetectors. The temporal or spatial samples are presented to signal processing circuitry as a sequence of amplitude levels having maxima and minima. Typically the transition point is defined as being intermediate the maxima and minima which are indicative of light and dark areas on the bar code symbol. It will be evident that a transition point generally will not occur precisely at a sampled point, but will lie between samples. Failure to take this fact into account can result in significant inaccuracy in determining the transition point, in determining the relative width of the space or bar, and in the interpretation of the bar code symbol. These problems, are further exacerbated by the aforementioned noise factors.
In U.S. Pat. No. 3,909,594 to Allais et al., there is shown a circuit that establishes a variable reference voltage, allowing the reader to compensate for variations in the amplitude of the photodetector signal caused by noise. The reference voltage is utilized by a comparator to identify the presence of a bar or a space.
In the disclosure of U.S. Pat. No. 4,335,301, to Palmer et al, two positive and negative peak detecting circuits define a varying reference voltage having a value that is intermediate to positive and negative peak voltages and can be used to identify a transition between bars and spaces. This circuit is able to compensate for reflectance variations among successive bars or spaces.
U.S. Pat. No. 4,833,309 to Yomogida discloses a peak hold circuit for converting an analog signal from a bar code detector into a digital signal. Reference signals corresponding to peaks are compared with an incoming signal in order to determine a transition. Compensating adjustments in the levels of the reference signals can be effected, tending to reduce the influence of noise on detection of transitions between bars and spaces.
While the above circuits are useful in defining the signal level that corresponds to a space-bar or bar-space transition, they do not address the problem of accurately locating the point in time or position at which a sparsely sampled analog signal crosses the defined level.